package com.games.chaoshi;

import java.util.ArrayList;
import java.util.List;

//仓库类,不用实例化
public class Store {

		/*public static List<Goods> kucun=new ArrayList<Goods>();

		 static{
				initialize();
		 }
		public  static void initialize(){

		//添加初始商品
				Goods g1=new Goods(1003,"脉动水蜜桃",20,15.6);
				Goods g2=new Goods(1004,"旺仔苹果Q糖",23,7.3);
				Goods g3=new Goods(1001,"吉百芝麻油",19,55.0);
				Goods g4=new Goods(1002,"雀巢奶香咖啡",19,55.0);

				kucun.add(g1);
				kucun.add(g2);
				kucun.add(g3);
				kucun.add(g4);

	}*/

    public static List<Goods> kucun = new ArrayList<Goods>();

    /*如果 不采用initialize静态块的方法来初始化超市仓库的话,就需要
     * 引入start()方法   通过main方法  来初始化仓库的 库存！！！ */
    public void start() {
        initialize();
    }

    public void initialize() {
   /*1.可以写成方法“public void x(){}”:
	方法名x可以使任何字符串,也可以再void前加上static!!!
	2.可以写成构造方法/构造函数“public Store(){}”:
	构造方法的方法名 必须是本类的类名:Store!!!*/

        //添加初始商品
        Goods g1 = new Goods(1003, "脉动水蜜桃", 20, 15.6);
        Goods g2 = new Goods(1004, "旺仔苹果Q糖", 23, 10.2);
        Goods g3 = new Goods(1001, "吉百芝麻油", 19, 55.0);
        Goods g4 = new Goods(1002, "雀巢奶香咖啡", 19, 55.0);

        kucun.add(g1);/*没有"public static void x(){}"方法，此处会报错!!!
		因为.add()方法必须在 方法(亦可以在构造方法里面)里面 才能够被调用!!!*/
        kucun.add(g2);
        kucun.add(g3);
        kucun.add(g4);
    }

    //通过输入编号i在  仓库中 查找对应的商品  的方法:
    public static Goods getGoodsBygoodsId(int p_i) {
        Goods g22 = null;        //Goods2是购物车的  商品类，g22是Goods2类其中的某一个对象(局部变量)
        for (Goods temp : kucun) {
            if (p_i == temp.getGoodsId()) {
                g22 = temp;
            }
        }
        return g22;
    }

    //查看库存所有商品
    public static void listStore() {
        System.out.println("----------库存列表----------");
        System.out.println("商品编号\t商品名称\t商品数量\t商品价格");
        for (Goods g3 : Store.kucun) {
            System.out.println(g3.getGoodsId() + "\t" + "\t" + g3.getName() + "\t" + g3.getCount() + "\t" + "\t" + "\t" + g3.getPrice());
        }
    }

}